With the development of telecommunication networks, it has become increasingly desirable for the network operators to offer additional services to network users in addition to the provision of voice and data calls. Such services include such functions as 0800 numbers, call forwarding, virtual private networks, and conference calls. Such services offer a greater range of functions to users of the network and consequently increase use and revenue for the operator.
Such services may be provided by appropriate service applications operating at appropriate network entities in a communication network, for example at a service control point (SCP) in an SS7 public switched telephone network (PSTN) or at a soft switch in a packet network, for example a VoIP network. Such entities are hereinafter referred to as “telecommunication network service entities”. The service may be performed by a service application distributed across a number of entities.
In the following specification, the software required to provide network functions for a network entity will be referred to as the “network layer” The network layer communicates with other network entities to provide call control functionality, call establishment, routing and so forth. The network layer is provided by a developer who publishes an application programming interface (API) for the network layer to enable third parties to write applications, particularly service applications, to sit on top of the network layer. Such an API is conventionally at a relatively low level, that is, it defines a large number of relatively simple input messages or instructions accepted by the network layer and will publish a large number of information elements, that is output messages relating to individual aspects of the call status and call and network parameters, in accordance with an appropriate protocol. A service application can be written using the published API and can be implemented in conjunction with a service manager which is functionally located between the network layer and service application. However, such a service application will then not be fully portable across different network layers and service managers provided by different developers. To encourage the development of service applications, it is desirable to these service applications be portable that is useable across a range of network entities and network layers from different suppliers.
To provide for portable service applications, it is known to provide a further API which sits on top of the network layer to provide a network layer independent API. An example is JAIN-CC (TM). An example of a stack for JAIN-CC is shown at FIG. 1. Referring to FIG. 1, the stack 10 comprises at its lowest level the network layer 11, provided with the vendor specific API, hereinafter referred to as a protocol API 12. To provide a higher level of abstraction, JAIN-CC 13 sits on top of the protocol API 12 and provides a defined generic call processing API. At its lower edge, JAIN-CC 13 is provided with an appropriate adaptor 15 to convert messages to and from the relatively high level call processing API to appropriate specific input or output messages for the protocol API 12. A service is provided by a service application, shown at 17. In the example of JAIN-CC, the relatively high level abstraction is performed by defining four “object” types which make up a call and which are addressed by a service application 17 using Java message calls. The service application 17 detects network events by establishing listener “objects” which trap Java events generated by the call processing API in response to underlying network events which have been notified to JAIN-CC by the network layer 11 via the protocol API 12.
While the JAIN-CC API is highly flexible, the level of abstraction provided by the API may be too high for some service applications. In particular, a service application may not be able to access service-specific information required from the network layer 11.
An aim of the present invention is to provide an appropriate level of abstraction for a service application which is independent of the network layer.